/*
 *  http://www.appcodes.cn APP精品源码下载站声明：
 * 1、本站源码为网上搜集或网友提供，如果涉及或侵害到您的版 权，请立即通知我们。
 * 2、 本站提供免费代码只可供研究学习使用，切勿用于商业用途 由此引起一切后果与本站无关。
 * 3、 商业源码请在源码授权范围内进行使用。
 * 4、更多APP精品源码下载请访问:http://www.appcodes.cn。
 * 5、如有疑问请发信息至appcodes@qq.com。
 */
package com.haochu.qipaipuzi.common.util;

import java.lang.reflect.Type;

import android.text.TextUtils;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

public class JsonHelper {

	private static Gson getGson() {
		return new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
	}

	public static <T> T fromJson(String json, Class<T> clazz) {
		try {
			if (!TextUtils.isEmpty(json)) {
				if (json.endsWith(";")) {
					json = json.substring(0, json.length() - 1);
				}
				Gson gson = getGson();
				T t = gson.fromJson(json, clazz);
				clazz = null;
				gson = null;
				return t;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static <T> T fromJson(String json, TypeToken<T> typeToken) {
		try {
			if (!TextUtils.isEmpty(json)) {
				if (json.endsWith(";")) {
					json = json.substring(0, json.length() - 1);
				}
				Gson gson = getGson();
				Type type = typeToken.getType();
				T t = gson.fromJson(json, type);
				typeToken = null;
				type = null;
				gson = null;
				return t;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public static String toJson(Object obj) {
		Gson gson = getGson();
		String result = gson.toJson(obj);
		gson = null;
		return result;
	}
}
